package ModelLayer;

import java.util.ArrayList;

/**
 * ProduktGruppe container x amount of
 * Vare objects.
 * */
public class ProduktGruppe {
	private ArrayList<Vare> vareListe;
	private VareContainer vareCon;
	private String beskrivelse;
	private int gruppeNr;
	
	/**
	 * Constructor of the ProduktGruppe class
	 * Contains a description about the produkt group.
	 * @param String beskrivelse, Int gruppeNr
	 * */
	public ProduktGruppe(String b, int gn)
	{
		this.beskrivelse = b;
		this.gruppeNr = gn;
		vareListe = new ArrayList<Vare>();
		vareCon = VareContainer.getInstance();
	}
	/**
	 * addVare method
	 * find Vare by its artikelNr
	 * @param int artikelNr
	 * */
	public void addVare(int an)
	{
		Vare v = vareCon.findVare(an);
		vareListe.add(v);
	}
	/**
	 * remove Vare from produktGruppe
	 * by its artikelNr and remove from
	 * arrayList.
	 * @param int artikelNr
	 * */
	public void removeVare(int an)
	{
		boolean search = false;
		int index = 0;
		Vare v = null;
		while(!search && index < vareListe.size()){
			v = vareListe.get(index);
			if(v.getArtikelNr() == an ){
				search = true;
			}else{
				index++;
			}
		}//loop end
		if(search){
			vareListe.remove(index);
		}
	}//removeVare end
	/**
	 * Find vare in ProduktGruppe
	 * @param int artikelNr
	 * */
	public Vare findVare(int an)
	{
		boolean search = false;
		int index = 0;
		Vare v = null;
		while(!search && index < vareListe.size()){
			v = vareListe.get(index);
			if(v.getArtikelNr() == an){
				search = true;
			}else{
				index++;
			}
		}//Loop end
		if(search){
			return v;
		}else{
			return null;
		}
	}//findVare end
	/**
	 * Set and get gruppeNr
	 * @param int gn
	 * */
	public void setGruppeNr(int gn){
		this.gruppeNr = gn;
	}
	public int getGruppeNr(){
		return this.gruppeNr;
	}
	
}
